Termination Proof Script

Consider the TRS R consisting of the rewrite rules
1:    sel(s(X),cons(Y,Z))  → sel(X,activate(Z))
2:    sel(0,cons(X,Z))  → X
3:    first(0,Z)  → nil
4:    first(s(X),cons(Y,Z))  → cons(Y,n__first(X,activate(Z)))
5:    from(X)  → cons(X,n__from(n__s(X)))
6:    sel1(s(X),cons(Y,Z))  → sel1(X,activate(Z))
7:    sel1(0,cons(X,Z))  → quote(X)
8:    first1(0,Z)  → nil1
9:    first1(s(X),cons(Y,Z))  → cons1(quote(Y),first1(X,activate(Z)))
10:    quote(n__0)  → 01
11:    quote1(n__cons(X,Z))  → cons1(quote(activate(X)),quote1(activate(Z)))
12:    quote1(n__nil)  → nil1
13:    quote(n__s(X))  → s1(quote(activate(X)))
14:    quote(n__sel(X,Z))  → sel1(activate(X),activate(Z))
15:    quote1(n__first(X,Z))  → first1(activate(X),activate(Z))
16:    unquote(01)  → 0
17:    unquote(s1(X))  → s(unquote(X))
18:    unquote1(nil1)  → nil
19:    unquote1(cons1(X,Z))  → fcons(unquote(X),unquote1(Z))
20:    fcons(X,Z)  → cons(X,Z)
21:    first(X1,X2)  → n__first(X1,X2)
22:    from(X)  → n__from(X)
23:    s(X)  → n__s(X)
24:    0  → n__0
25:    cons(X1,X2)  → n__cons(X1,X2)
26:    nil  → n__nil
27:    sel(X1,X2)  → n__sel(X1,X2)
28:    activate(n__first(X1,X2))  → first(activate(X1),activate(X2))
29:    activate(n__from(X))  → from(activate(X))
30:    activate(n__s(X))  → s(activate(X))
31:    activate(n__0)  → 0
32:    activate(n__cons(X1,X2))  → cons(activate(X1),X2)
33:    activate(n__nil)  → nil
34:    activate(n__sel(X1,X2))  → sel(activate(X1),activate(X2))
35:    activate(X)  → X
There are 46 dependency pairs:
36:    SEL(s(X),cons(Y,Z))  → SEL(X,activate(Z))
37:    SEL(s(X),cons(Y,Z))  → ACTIVATE(Z)
38:    FIRST(0,Z)  → NIL
39:    FIRST(s(X),cons(Y,Z))  → CONS(Y,n__first(X,activate(Z)))
40:    FIRST(s(X),cons(Y,Z))  → ACTIVATE(Z)
41:    FROM(X)  → CONS(X,n__from(n__s(X)))
42:    SEL1(s(X),cons(Y,Z))  → SEL1(X,activate(Z))
43:    SEL1(s(X),cons(Y,Z))  → ACTIVATE(Z)
44:    SEL1(0,cons(X,Z))  → QUOTE(X)
45:    FIRST1(s(X),cons(Y,Z))  → QUOTE(Y)
46:    FIRST1(s(X),cons(Y,Z))  → FIRST1(X,activate(Z))
47:    FIRST1(s(X),cons(Y,Z))  → ACTIVATE(Z)
48:    QUOTE1(n__cons(X,Z))  → QUOTE(activate(X))
49:    QUOTE1(n__cons(X,Z))  → ACTIVATE(X)
50:    QUOTE1(n__cons(X,Z))  → QUOTE1(activate(Z))
51:    QUOTE1(n__cons(X,Z))  → ACTIVATE(Z)
52:    QUOTE(n__s(X))  → QUOTE(activate(X))
53:    QUOTE(n__s(X))  → ACTIVATE(X)
54:    QUOTE(n__sel(X,Z))  → SEL1(activate(X),activate(Z))
55:    QUOTE(n__sel(X,Z))  → ACTIVATE(X)
56:    QUOTE(n__sel(X,Z))  → ACTIVATE(Z)
57:    QUOTE1(n__first(X,Z))  → FIRST1(activate(X),activate(Z))
58:    QUOTE1(n__first(X,Z))  → ACTIVATE(X)
59:    QUOTE1(n__first(X,Z))  → ACTIVATE(Z)
60:    UNQUOTE(01)  → 0#
61:    UNQUOTE(s1(X))  → S(unquote(X))
62:    UNQUOTE(s1(X))  → UNQUOTE(X)
63:    UNQUOTE1(nil1)  → NIL
64:    UNQUOTE1(cons1(X,Z))  → FCONS(unquote(X),unquote1(Z))
65:    UNQUOTE1(cons1(X,Z))  → UNQUOTE(X)
66:    UNQUOTE1(cons1(X,Z))  → UNQUOTE1(Z)
67:    FCONS(X,Z)  → CONS(X,Z)
68:    ACTIVATE(n__first(X1,X2))  → FIRST(activate(X1),activate(X2))
69:    ACTIVATE(n__first(X1,X2))  → ACTIVATE(X1)
70:    ACTIVATE(n__first(X1,X2))  → ACTIVATE(X2)
71:    ACTIVATE(n__from(X))  → FROM(activate(X))
72:    ACTIVATE(n__from(X))  → ACTIVATE(X)
73:    ACTIVATE(n__s(X))  → S(activate(X))
74:    ACTIVATE(n__s(X))  → ACTIVATE(X)
75:    ACTIVATE(n__0)  → 0#
76:    ACTIVATE(n__cons(X1,X2))  → CONS(activate(X1),X2)
77:    ACTIVATE(n__cons(X1,X2))  → ACTIVATE(X1)
78:    ACTIVATE(n__nil)  → NIL
79:    ACTIVATE(n__sel(X1,X2))  → SEL(activate(X1),activate(X2))
80:    ACTIVATE(n__sel(X1,X2))  → ACTIVATE(X1)
81:    ACTIVATE(n__sel(X1,X2))  → ACTIVATE(X2)
The approximated dependency graph contains 6 SCCs: {36,37,40,68-70,72,74,77,79-81}, {42,44,52,54}, {46}, {50}, {62} and {66}.
Tyrolean Termination Tool  (0.81 seconds)   ---  May 3, 2006